/* * Collie - An asynchronous event-driven network framework using Dlang development * * Copyright (C) 2015-2017 Shanghai Putao Technology Co., Ltd * * Developer: putao's Dlang team * * Licensed under the Apache-2.0 License. * */ module collie.codec.http.server.responsehandler; import collie.codec.http.httpmessage; import collie.codec.http.server.requesthandler; import collie.codec.http.errocode; import collie.codec.http.codec.wsframe; import collie.codec.http.httptansaction; import kiss.net; import kiss.event; abstract class ResponseHandler { this(RequestHandler handle) { _upstream = handle; } void sendHeaders(HTTPMessage headers); void sendHeadersWithEOM(HTTPMessage headers); void sendChunkHeader(size_t len); void sendBody(in ubyte[] data,bool iseom = false); void sendChunkTerminator(); void sendEOM(); void sendTimeOut(); final void socketWrite(ubyte[] data, DataWrittenHandler cback) { socketWrite(new SocketStreamBuffer(data,cback)); } void socketWrite(StreamWriteBuffer buffer); void sendWsData(OpCode code,ubyte[] data); protected: RequestHandler _upstream; }